/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;

import Controladores.CatedraticoJpaController;
import Controladores.CursoJpaController;
import Controladores.CursoposibleJpaController;
import Controladores.exceptions.NonexistentEntityException;
import Entidades.Asignacionciclocarrera;
import Entidades.Carrera;
import Entidades.Catedratico;
import Entidades.Ciclo;
import Entidades.Curso;
import Entidades.Cursoposible;
import Usuarios.conexion;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;


/**
 *
 * @author EliteBook
 */
public class ICursoPosible {
    public ICursoPosible()
    {
        
    }
    //Ingreso de Curso posible           Erick Valencia
    public void guardar(Curso IdCurso, Catedratico idCatedratico)
    {
        Cursoposible cursoPosible = new Cursoposible();
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        CursoposibleJpaController controlador = new CursoposibleJpaController(emf);
        CursoJpaController controladorCurso = new CursoJpaController(emf);
        cursoPosible.setCursoidCurso(controladorCurso.findCurso(IdCurso.getIdCurso()));
        CatedraticoJpaController controladorCatedratico= new CatedraticoJpaController(emf);
        cursoPosible.setCatedraticoidCatedratico(controladorCatedratico.findCatedratico(idCatedratico.getNumeroCatedratico()));
        controlador.create(cursoPosible);
    }
    //modificaciones a curso posible          erick Valencia
    public void modificar(Cursoposible cursoPosible)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        CursoposibleJpaController controlador = new CursoposibleJpaController(emf);
        try {
            controlador.edit(cursoPosible);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(ICursoPosible.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ICursoPosible.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void Eliminar(Cursoposible cursoPosible)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        CursoposibleJpaController controlador = new CursoposibleJpaController(emf);
        try {
            controlador.destroy(cursoPosible.getIdCursoPosible());
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(ICursoPosible.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ICursoPosible.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public Cursoposible obtenerCatedraticoCurso(Catedratico catedratico, Curso curso){
        Cursoposible registro = new Cursoposible();
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Cursoposible.findByCatecraticoCurso");
        qr.setParameter("catedratico", catedratico);
        qr.setParameter("curso", curso);
        List<Cursoposible> lista = qr.getResultList();
        if(lista.isEmpty()){
            return registro;
        }
        else{
            return lista.get(0);
        }
    }
    //busqueda de curso posible por id      "Erick Valencia"
    public Cursoposible buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        CursoposibleJpaController controlador = new CursoposibleJpaController(emf);
        return controlador.findCursoposible(id);
    }
    
    public List<Cursoposible> mostrarTodo()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        CursoposibleJpaController controlador = new CursoposibleJpaController(emf);
        return controlador.findCursoposibleEntities();
    }
}
